#pragma once
#include "GameObj.h"
#include "TimeMgr.h"
class Bird:public GameObj,public TimeListener
{
public:
	enum BirdStateType{WAITING=1,READY,FLYING,COLLIDED,DEAD};
	bool isOut;
	virtual ObjType getType() const {return OT_BIRD;}
	BirdStateType birdState;
	Bird(void);
	~Bird(void){}
	//////////////////////////////////////////////////////////////////////////
	//trigger special powers that the bird has,such as splitting into three etc.
	virtual void triggerSuperPower(){};
	virtual void getReady();
	void fly();
	virtual void collide();
	virtual void timeUp();
protected:
	virtual char * getMeshName(){return "yele.mesh";}
	virtual char * getMaterialName(){return 0;}
	virtual void decreaseHP(){}  //bird has no hp, only time can kill a bird
private:
	virtual void destroy();

};